#pragma once
#include"global.h"
#include <functional>

class AVPacket;
class AVFrame;
class RPCFW_EXPORT DecoderInf
{
public:
	typedef std::function<void(AVFrame *)> FrameCallback;

public:
	virtual int decodePkt(AVPacket *,const FrameCallback &) = 0;
	virtual ~DecoderInf() {}

private:

};

class RPCFW_EXPORT EncoderInf
{
public:
	virtual bool init(const int ,const int)=0;
	virtual int sendFrame(const AVFrame *)=0;
	virtual int recvPacket(AVPacket **) = 0;
	virtual ~EncoderInf() {}
};